package controladores;
import modelos.Fachada;
import modelos.Conexion;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;
import java.util.Iterator;
import java.util.Vector;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

import modelos.MCategoria;
import vistas.VCategoria;
import modelos.MConexion;
import modelos.MConexion;
 
public class CCategoria implements ActionListener{

    private VCategoria vistaCate;
    private MCategoria modelo =  new MCategoria();
    private static CCategoria instancia;
    private Fachada fachada = new Fachada();
    private MConexion conexion = new MConexion();
    
    //Patron Singleton instancia unica de la ventana
    
	public static synchronized CCategoria getInstancia() {
		if (instancia == null)
			instancia = new CCategoria();
		return instancia;
	}
   
    
    public CCategoria() {
    	super();
    	this.vistaCate = new VCategoria(this);

        vistaCate.addListener(this);
        String codigo = String.valueOf(conexion.generarCodigo("Categoria"));
        vistaCate.setCodigo(codigo);
    
    
    
    }
    
    public void mostrar() {
        vistaCate.setVisible(true);
    }

	public void actionPerformed(ActionEvent ae) {
        if(ae.getActionCommand().equals("Registrar")){
                registrar();
                
        }
        else if(ae.getActionCommand().equals("Salir")){
            vistaCate.setVisible(false);
            vistaCate.reiniciar();
        }
        else{
            vistaCate.reiniciar();
        }            
    }

    public boolean validarVacios(){
        if(vistaCate.getTxtDescripcion().getText().equals("")){
                JOptionPane.showMessageDialog(new JFrame(),"Campos vacios","Guaro Burguer",JOptionPane.INFORMATION_MESSAGE);
                return false;
            }
        return true;
    }

    
 //Implementacion Fachada   
   public void registrar(){
       if(validarVacios()){
    	   String descripcion= vistaCate.getTxtDescripcion().getText();
    	   String codigo = vistaCate.getTxtCodigo().getText();
    	   
    	  
    	   
    	   fachada.setCodigo(codigo);
     	   fachada.setDescripcion(descripcion);
     	   fachada.setStatus("A");
    	   
     	   System.out.println(codigo+descripcion);
     	   
     	   		fachada.registrarCategoria();
                JOptionPane.showMessageDialog(new JFrame(),"Categoria registrada exitosamente","Guaro Burguer",JOptionPane.WARNING_MESSAGE);
                vistaCate.reiniciar();
                
                int nuevoCodigo= Integer.parseInt(vistaCate.getTxtCodigo().getText())+1;
                vistaCate.setCodigo(String.valueOf(nuevoCodigo));
        
              
       }
    }
}
